/**
 * ...: 数组扩展运算符
 * 可以将数组解开，然后传值给函数的rest参数
 * 把数组的成员，拷贝到另一个数组中（浅拷贝）
 */

function sum(...params) {
    let result = 0;
    params.forEach(v => result += v);
    return result;
}

let arr2 = [];
arr2.push(...[1,2,3,4,5]);
console.log("arr2 =",arr2);

let arr = [1,2,3,4,5];
console.log("result =",sum(...arr));

let newArr = ['a',...arr,'d'];
console.log("newArr =",newArr);

let a = new Array(...arr);
console.log("a =",a);

a = [];
a.unshift(...arr);
console.log("a =",a);

a = Array.from(arr);
console.log("a =",a);

a = [];
Object.assign(a,arr);
console.log("a =",a);

// 把数组（或伪数组对象）成员，拷贝到另一数组中的方法
// 方法1：for循环
// 方法2：遍历函数（forEach）,map（创建新数组）
// 方法3：扩展运算符（创建新数组）
// 方法4：arr.push(...arr)或arr.unshift(...arr)
// 方法5：new Array(...arr)或Array.of(...arr)
// 方法6：Arrary.from(arr);
// 方法7：Object.assign([],arr);